import request from '@/config/axios'

// ip黑名单 VO
export interface WebIpBlackVO {
  id: number // 自增id
  ip: string // 拉黑ip
  reason: string // 拉黑原因
  blacklistTime: Date // 拉黑时间
  placeOrigin: string // 归属地
  isp: string // isp运营商
  source: string // 来源（1手动拉黑2访问记录）
}

// ip黑名单 API
export const WebIpBlackApi = {
  // 查询ip黑名单分页
  getWebIpBlackPage: async (params: any) => {
    return await request.get({ url: `/website/web-ip-black/page`, params })
  },

  // 查询ip黑名单详情
  getWebIpBlack: async (id: number) => {
    return await request.get({ url: `/website/web-ip-black/get?id=` + id })
  },

  // 新增ip黑名单
  createWebIpBlack: async (data: WebIpBlackVO) => {
    return await request.post({ url: `/website/web-ip-black/create`, data })
  },

  // 修改ip黑名单
  updateWebIpBlack: async (data: WebIpBlackVO) => {
    return await request.put({ url: `/website/web-ip-black/update`, data })
  },

  // 删除ip黑名单
  deleteWebIpBlack: async (id: number) => {
    return await request.delete({ url: `/website/web-ip-black/delete?id=` + id })
  },

  // 导出ip黑名单 Excel
  exportWebIpBlack: async (params) => {
    return await request.download({ url: `/website/web-ip-black/export-excel`, params })
  },
  // 下载模板
  getImportTemplate: async () => {
    return await request.download({ url: `/website/web-ip-black/get-import-template` })
  },
  // 导入IP黑名单
  importWebIpBlack: async (file: File) => {
    const formData = new FormData() // 创建 FormData 对象
    formData.append('file', file) // 将文件添加到 FormData
    return await request.post({
      url: '/website/web-ip-black/import', // 使用包含参数的 URL
      data: formData, // 使用 FormData 作为请求体
      headers: {
        'Content-Type': 'multipart/form-data' // 确保设置正确的 Content-Type
      }
    })
  }
}
